package org.jeecg.talentCooperation.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

public class DateConverterUtil {

    // 支持的输入日期格式列表
    private static final List<String> INPUT_DATE_FORMATS = Arrays.asList(
            "yyyy-MM-dd",
            "yyyyMMdd",
            "yyyyMM",
            "yyyy/MM/dd HH:mm"
    );

    /**
     * 将日期字符串转换为 "yyyy-MM-dd" 格式的字符串。
     *
     * @param dateString 需要转换的日期字符串
     * @return 转换后的日期字符串，如果无法解析则返回 null
     */
    public static String convertToDateString(String dateString) {
        SimpleDateFormat inputFormatter;
        SimpleDateFormat outputFormatter = new SimpleDateFormat("yyyy-MM-dd");

        for (String format : INPUT_DATE_FORMATS) {
            inputFormatter = new SimpleDateFormat(format);
            try {
                Date date = inputFormatter.parse(dateString);
                return outputFormatter.format(date);
            } catch (ParseException e) {
                // 继续尝试下一个格式
            }
        }
        // 所有格式尝试失败后返回null
        return "";
    }

    public static void main(String[] args) {
        String[] testDates = {
                "201901",             // "2019年1月1日"
                "2013/12/11 9:12",    // "2013年12月11日"
                "2039-09-21",         // "2039年9月21日"
                "20210415"            // "2021年4月15日"
        };

        for (String testDate : testDates) {
            String formattedDate = convertToDateString(testDate);
            if (formattedDate != null) {
                System.out.println("Formatted Date: " + formattedDate);
            } else {
                System.out.println("Failed to parse and format date: " + testDate);
            }
        }
    }
}
